package com.ruoyi.order.mapper;

import com.ruoyi.order.domain.SysOrder;
import com.ruoyi.order.domain.SysProd;

import java.util.List;


/**
 * 订单记录Mapper接口
 * 
 * @author yj
 * @date 2023-11-14
 */
public interface SysOrderMapper
{
    /**
     * 查询订单记录
     *
     * @param id 订单记录主键
     * @return 订单记录
     */
    // todo 前端 参数receipt_type 没传 后端sql自动拼接
//    public SysOrder selectSysOrderById(@Param("id") Long id, @Param("receiptType")Integer receiptType);
    public SysOrder selectSysOrderById(Long id);

    /**
     * 查询未收货 物品
     * @return
     */
    public SysOrder noReceiptList(Long id);

    /**
     * 查询订单记录列表
     *
     * @param sysOrder 订单记录
     * @return 订单记录集合
     */
    public List<SysOrder> selectSysOrderList(SysOrder sysOrder);

    List<SysOrder> getOrderAndProd();

    /**
     * 新增订单记录
     *
     * @param sysOrder 订单记录
     * @return 结果
     */
    public int insertSysOrder(SysOrder sysOrder);

    /**
     * 修改订单记录
     *
     * @param sysOrder 订单记录
     * @return 结果
     */
    public int updateSysOrder(SysOrder sysOrder);

    /**
     * 删除订单记录
     *
     * @param id 订单记录主键
     * @return 结果
     */
    public int deleteSysOrderById(Long id);

    /**
     * 批量删除订单记录
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysOrderByIds(Long[] ids);

    /**
     * 批量删除物品列
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysProdByOrderCodes(Long[] ids);

    /**
     * 批量新增物品列
     *
     * @param sysProdList 物品列列表
     * @return 结果
     */
    public int batchSysProd(List<SysProd> sysProdList);


    /**
     * 通过订单记录主键删除物品列信息
     *
     * @param id 订单记录ID
     * @return 结果
     */
    public int deleteSysProdByOrderCode(String orderCode);

    public int insertSysProd(SysProd sysProd);

    public int selectSysOrderByOrderCode(String orderCode);
}
